<?php
namespace app\common;

class Pinyin {
	private $_code=[
	    ["a", '-20319'],
	    ["ai", '-20317'],
	    ["an", '-20304'],
	    ["ang", '-20295'],
	    ["ao", '-20292'],
	    ["ba", '-20283'],
	    ["bai", '-20265'],
	    ["ban", '-20257'],
	    ["bang", '-20242'],
	    ["bao", '-20230'],
	    ["bei", '-20051'],
	    ["ben", '-20036'],
	    ["beng", '-20032'],
	    ["bi", '-20026'],
	    ["bian", '-20002'],
	    ["biao", '-19990'],
	    ["bie", '-19986'],
	    ["bin", '-19982'],
	    ["bing", '-19976'],
	    ["bo", '-19805'],
	    ["bu", '-19784'],
	    ["ca", '-19775'],
	    ["cai", '-19774'],
	    ["can", '-19763'],
	    ["cang", '-19756'],
	    ["cao", '-19751'],
	    ["ce", '-19746'],
	    ["ceng", '-19741'],
	    ["cha", '-19739'],
	    ["chai", '-19728'],
	    ["chan", '-19725'],
	    ["chang", '-19715'],
	    ["chao", '-19540'],
	    ["che", '-19531'],
	    ["chen", '-19525'],
	    ["cheng", '-19515'],
	    ["chi", '-19500'],
	    ["chong", '-19484'],
	    ["chou", '-19479'],
	    ["chu", '-19467'],
	    ["chuai", '-19289'],
	    ["chuan", '-19288'],
	    ["chuang", '-19281'],
	    ["chui", '-19275'],
	    ["chun", '-19270'],
	    ["chuo", '-19263'],
	    ["ci", '-19261'],
	    ["cong", '-19249'],
	    ["cou", '-19243'],
	    ["cu", '-19242'],
	    ["cuan", '-19238'],
	    ["cui", '-19235'],
	    ["cun", '-19227'],
	    ["cuo", '-19224'],
	    ["da", '-19218'],
	    ["dai", '-19212'],
	    ["dan", '-19038'],
	    ["dang", '-19023'],
	    ["dao", '-19018'],
	    ["de", '-19006'],
	    ["deng", '-19003'],
	    ["di", '-18996'],
	    ["dian", '-18977'],
	    ["diao", '-18961'],
	    ["die", '-18952'],
	    ["ding", '-18783'],
	    ["diu", '-18774'],
	    ["dong", '-18773'],
	    ["dou", '-18763'],
	    ["du", '-18756'],
	    ["duan", '-18741'],
	    ["dui", '-18735'],
	    ["dun", '-18731'],
	    ["duo", '-18722'],
	    ["e", '-18710'],
	    ["en", '-18697'],
	    ["er", '-18696'],
	    ["fa", '-18526'],
	    ["fan", '-18518'],
	    ["fang", '-18501'],
	    ["fei", '-18490'],
	    ["fen", '-18478'],
	    ["feng", '-18463'],
	    ["fo", '-18448'],
	    ["fou", '-18447'],
	    ["fu", '-18446'],
	    ["ga", '-18239'],
	    ["gai", '-18237'],
	    ["gan", '-18231'],
	    ["gang", '-18220'],
	    ["gao", '-18211'],
	    ["ge", '-18201'],
	    ["gei", '-18184'],
	    ["gen", '-18183'],
	    ["geng", '-18181'],
	    ["gong", '-18012'],
	    ["gou", '-17997'],
	    ["gu", '-17988'],
	    ["gua", '-17970'],
	    ["guai", '-17964'],
	    ["guan", '-17961'],
	    ["guang", '-17950'],
	    ["gui", '-17947'],
	    ["gun", '-17931'],
	    ["guo", '-17928'],
	    ["ha", '-17922'],
	    ["hai", '-17759'],
	    ["han", '-17752'],
	    ["hang", '-17733'],
	    ["hao", '-17730'],
	    ["he", '-17721'],
	    ["hei", '-17703'],
	    ["hen", '-17701'],
	    ["heng", '-17697'],
	    ["hong", '-17692'],
	    ["hou", '-17683'],
	    ["hu", '-17676'],
	    ["hua", '-17496'],
	    ["huai", '-17487'],
	    ["huan", '-17482'],
	    ["huang", '-17468'],
	    ["hui", '-17454'],
	    ["hun", '-17433'],
	    ["huo", '-17427'],
	    ["ji", '-17417'],
	    ["jia", '-17202'],
	    ["jian", '-17185'],
	    ["jiang", '-16983'],
	    ["jiao", '-16970'],
	    ["jie", '-16942'],
	    ["jin", '-16915'],
	    ["jing", '-16733'],
	    ["jiong", '-16708'],
	    ["jiu", '-16706'],
	    ["ju", '-16689'],
	    ["juan", '-16664'],
	    ["jue", '-16657'],
	    ["jun", '-16647'],
	    ["ka", '-16474'],
	    ["kai", '-16470'],
	    ["kan", '-16465'],
	    ["kang", '-16459'],
	    ["kao", '-16452'],
	    ["ke", '-16448'],
	    ["ken", '-16433'],
	    ["keng", '-16429'],
	    ["kong", '-16427'],
	    ["kou", '-16423'],
	    ["ku", '-16419'],
	    ["kua", '-16412'],
	    ["kuai", '-16407'],
	    ["kuan", '-16403'],
	    ["kuang", '-16401'],
	    ["kui", '-16393'],
	    ["kun", '-16220'],
	    ["kuo", '-16216'],
	    ["la", '-16212'],
	    ["lai", '-16205'],
	    ["lan", '-16202'],
	    ["lang", '-16187'],
	    ["lao", '-16180'],
	    ["le", '-16171'],
	    ["lei", '-16169'],
	    ["leng", '-16158'],
	    ["li", '-16155'],
	    ["lia", '-15959'],
	    ["lian", '-15958'],
	    ["liang", '-15944'],
	    ["liao", '-15933'],
	    ["lie", '-15920'],
	    ["lin", '-15915'],
	    ["ling", '-15903'],
	    ["liu", '-15889'],
	    ["long", '-15878'],
	    ["lou", '-15707'],
	    ["lu", '-15701'],
	    ["lv", '-15681'],
	    ["luan", '-15667'],
	    ["lue", '-15661'],
	    ["lun", '-15659'],
	    ["luo", '-15652'],
	    ["ma", '-15640'],
	    ["mai", '-15631'],
	    ["man", '-15625'],
	    ["mang", '-15454'],
	    ["mao", '-15448'],
	    ["me", '-15436'],
	    ["mei", '-15435'],
	    ["men", '-15419'],
	    ["meng", '-15416'],
	    ["mi", '-15408'],
	    ["mian", '-15394'],
	    ["miao", '-15385'],
	    ["mie", '-15377'],
	    ["min", '-15375'],
	    ["ming", '-15369'],
	    ["miu", '-15363'],
	    ["mo", '-15362'],
	    ["mou", '-15183'],
	    ["mu", '-15180'],
	    ["na", '-15165'],
	    ["nai", '-15158'],
	    ["nan", '-15153'],
	    ["nang", '-15150'],
	    ["nao", '-15149'],
	    ["ne", '-15144'],
	    ["nei", '-15143'],
	    ["nen", '-15141'],
	    ["neng", '-15140'],
	    ["ni", '-15139'],
	    ["nian", '-15128'],
	    ["niang", '-15121'],
	    ["niao", '-15119'],
	    ["nie", '-15117'],
	    ["nin", '-15110'],
	    ["ning", '-15109'],
	    ["niu", '-14941'],
	    ["nong", '-14937'],
	    ["nu", '-14933'],
	    ["nv", '-14930'],
	    ["nuan", '-14929'],
	    ["nue", '-14928'],
	    ["nuo", '-14926'],
	    ["o", '-14922'],
	    ["ou", '-14921'],
	    ["pa", '-14914'],
	    ["pai", '-14908'],
	    ["pan", '-14902'],
	    ["pang", '-14894'],
	    ["pao", '-14889'],
	    ["pei", '-14882'],
	    ["pen", '-14873'],
	    ["peng", '-14871'],
	    ["pi", '-14857'],
	    ["pian", '-14678'],
	    ["piao", '-14674'],
	    ["pie", '-14670'],
	    ["pin", '-14668'],
	    ["ping", '-14663'],
	    ["po", '-14654'],
	    ["pu", '-14645'],
	    ["qi", '-14630'],
	    ["qia", '-14594'],
	    ["qian", '-14429'],
	    ["qiang", '-14407'],
	    ["qiao", '-14399'],
	    ["qie", '-14384'],
	    ["qin", '-14379'],
	    ["qing", '-14368'],
	    ["qiong", '-14355'],
	    ["qiu", '-14353'],
	    ["qu", '-14345'],
	    ["quan", '-14170'],
	    ["que", '-14159'],
	    ["qun", '-14151'],
	    ["ran", '-14149'],
	    ["rang", '-14145'],
	    ["rao", '-14140'],
	    ["re", '-14137'],
	    ["ren", '-14135'],
	    ["reng", '-14125'],
	    ["ri", '-14123'],
	    ["rong", '-14122'],
	    ["rou", '-14112'],
	    ["ru", '-14109'],
	    ["ruan", '-14099'],
	    ["rui", '-14097'],
	    ["run", '-14094'],
	    ["ruo", '-14092'],
	    ["sa", '-14090'],
	    ["sai", '-14087'],
	    ["san", '-14083'],
	    ["sang", '-13917'],
	    ["sao", '-13914'],
	    ["se", '-13910'],
	    ["sen", '-13907'],
	    ["seng", '-13906'],
	    ["sha", '-13905'],
	    ["shai", '-13896'],
	    ["shan", '-13894'],
	    ["shang", '-13878'],
	    ["shao", '-13870'],
	    ["she", '-13859'],
	    ["shen", '-13847'],
	    ["sheng", '-13831'],
	    ["shi", '-13658'],
	    ["shou", '-13611'],
	    ["shu", '-13601'],
	    ["shua", '-13406'],
	    ["shuai", '-13404'],
	    ["shuan", '-13400'],
	    ["shuang", '-13398'],
	    ["shui", '-13395'],
	    ["shun", '-13391'],
	    ["shuo", '-13387'],
	    ["si", '-13383'],
	    ["song", '-13367'],
	    ["sou", '-13359'],
	    ["su", '-13356'],
	    ["suan", '-13343'],
	    ["sui", '-13340'],
	    ["sun", '-13329'],
	    ["suo", '-13326'],
	    ["ta", '-13318'],
	    ["tai", '-13147'],
	    ["tan", '-13138'],
	    ["tang", '-13120'],
	    ["tao", '-13107'],
	    ["te", '-13096'],
	    ["teng", '-13095'],
	    ["ti", '-13091'],
	    ["tian", '-13076'],
	    ["tiao", '-13068'],
	    ["tie", '-13063'],
	    ["ting", '-13060'],
	    ["tong", '-12888'],
	    ["tou", '-12875'],
	    ["tu", '-12871'],
	    ["tuan", '-12860'],
	    ["tui", '-12858'],
	    ["tun", '-12852'],
	    ["tuo", '-12849'],
	    ["wa", '-12838'],
	    ["wai", '-12831'],
	    ["wan", '-12829'],
	    ["wang", '-12812'],
	    ["wei", '-12802'],
	    ["wen", '-12607'],
	    ["weng", '-12597'],
	    ["wo", '-12594'],
	    ["wu", '-12585'],
	    ["xi", '-12556'],
	    ["xia", '-12359'],
	    ["xian", '-12346'],
	    ["xiang", '-12320'],
	    ["xiao", '-12300'],
	    ["xie", '-12120'],
	    ["xin", '-12099'],
	    ["xing", '-12089'],
	    ["xiong", '-12074'],
	    ["xiu", '-12067'],
	    ["xu", '-12058'],
	    ["xuan", '-12039'],
	    ["xue", '-11867'],
	    ["xun", '-11861'],
	    ["ya", '-11847'],
	    ["yan", '-11831'],
	    ["yang", '-11798'],
	    ["yao", '-11781'],
	    ["ye", '-11604'],
	    ["yi", '-11589'],
	    ["yin", '-11536'],
	    ["ying", '-11358'],
	    ["yo", '-11340'],
	    ["yong", '-11339'],
	    ["you", '-11324'],
	    ["yu", '-11303'],
	    ["yuan", '-11097'],
	    ["yue", '-11077'],
	    ["yun", '-11067'],
	    ["za", '-11055'],
	    ["zai", '-11052'],
	    ["zan", '-11045'],
	    ["zang", '-11041'],
	    ["zao", '-11038'],
	    ["ze", '-11024'],
	    ["zei", '-11020'],
	    ["zen", '-11019'],
	    ["zeng", '-11018'],
	    ["zha", '-11014'],
	    ["zhai", '-10838'],
	    ["zhan", '-10832'],
	    ["zhang", '-10815'],
	    ["zhao", '-10800'],
	    ["zhe", '-10790'],
	    ["zhen", '-10780'],
	    ["zheng", '-10764'],
	    ["zhi", '-10587'],
	    ["zhong", '-10544'],
	    ["zhou", '-10533'],
	    ["zhu", '-10519'],
	    ["zhua", '-10331'],
	    ["zhuai", '-10329'],
	    ["zhuan", '-10328'],
	    ["zhuang", '-10322'],
	    ["zhui", '-10315'],
	    ["zhun", '-10309'],
	    ["zhuo", '-10307'],
	    ["zi", '-10296'],
	    ["zong", '-10281'],
	    ["zou", '-10274'],
	    ["zu", '-10270'],
	    ["zuan", '-10262'],
	    ["zui", '-10260'],
	    ["zun", '-10256'],
	    ["zuo", '-10254'],
    ];
    /**
     * 中文转拼音
     * @param string $str 中文
     * @return  string 拼音
     */
    function PinYin($str){
    	$str = mb_convert_encoding($str, 'gbk', 'utf8');
        $ret = '';
        for($i=0; $i<strlen($str); $i++){
            $p = ord(substr($str, $i, 1)); //查看ASCII码
            if($p > 160){ //如果是中文，再多截取一个字符
                $q = ord(substr($str, ++$i, 1));
                $p = $p * 256 + $q - 65536;
            }
            $ret .= $this->convert($p);
        }
        return $ret;
    }
    
    //转化函数
    function convert($num){
        if ($num > 0 && $num < 160) { //如果不是汉字，直接返回相对字符
            return chr($num);
        } elseif ($num < "-20319" || $num > "-10247") {
            return "";
        } else { //汉字，查找对应拼音
            for ($i = count($this->_code) - 1; $i >= 0; $i--) {
                if ($this->_code[$i][1] <= $num)
                break;
            }
            //return substr($this->_code[$i][0],0,1);
            return $this->_code[$i][0];
        }
    }
}